package com.yupi.springbootinit.statemachine.step;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 步骤状态流转上下文（用于守卫条件校验）
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class StepTransitionContext {
    /**
     * 当前时间（用于逾期判断），可为空则用调用方默认
     */
    private LocalDateTime now;

    /**
     * 计划开始时间（用于逾期判断）
     */
    private LocalDateTime planStart;

    /**
     * 是否需检（0/1），影响 COMPLETE 后的分支
     */
    private Integer needInspection;

    /**
     * 逾期原因（当开始时间超过计划+5分钟时必填）
     */
    private String overdueReason;

    /**
     * 前序是否已完成（用于从 PLANNED -> READY 的守卫）
     */
    private Boolean previousCompleted;
}